package cms

type Taxonomies struct {
	Category string `mapstructure:"category" json:"category" yaml:"category"`
	Tag      string `mapstructure:"tag" json:"tag" yaml:"tag"`
}

type Permalinks struct {
	Posts string `mapstructure:"posts" json:"posts" yaml:"posts"`
	Page  string `mapstructure:"page" json:"page" yaml:"page"`
}

type Article struct {
	Toc bool `mapstructure:"toc" json:"toc" yaml:"toc"`
}

type About struct {
	Title string `mapstructure:"title" json:"title" yaml:"title"`
}

type Footer struct {
	Since      uint   `mapstructure:"since" json:"since" yaml:"since"`
	CustomText string `mapstructure:"customText" json:"customText" yaml:"customText"`
}

type HomeSlider struct {
	Identifier string `mapstructure:"identifier" json:"identifier" yaml:"identifier"`
	IsActive   bool   `mapstructure:"isActive" json:"isActive" yaml:"isActive"`
	Image      string `mapstructure:"image" json:"image" yaml:"image"`
	Title      string `mapstructure:"title" json:"title" yaml:"title"`
	Info       string `mapstructure:"info" json:"info" yaml:"info"`
	Btns       []Btns `mapstructure:"btns" json:"btns" yaml:"btns"`
}

type WidgetsParams struct {
	Limit uint `mapstructure:"limit" json:"limit" yaml:"limit"`
}

type WidgetsHomepage struct {
	Type   string        `mapstructure:"type" json:"type" yaml:"type"`
	Params WidgetsParams `mapstructure:"params" json:"params" yaml:"params"`
}

type Widgets struct {
	Homepage []WidgetsHomepage `mapstructure:"homepage" json:"homepage" yaml:"homepage"`
}

type MenuDetail struct {
	Identifier string `mapstructure:"identifier" json:"identifier" yaml:"identifier"`
	Parent     string `mapstructure:"parent" json:"parent" yaml:"parent"`
	Name       string `mapstructure:"name" json:"name" yaml:"name"`
	Url        string `mapstructure:"url" json:"url" yaml:"url"`
	Weight     uint   `mapstructure:"weight" json:"weight" yaml:"weight"`
}

type MenuMain struct {
	Main []MenuDetail `mapstructure:"main" json:"main" yaml:"main"`
}

type Btns struct {
	Identifier string `mapstructure:"identifier" json:"identifier" yaml:"identifier"`
	Title      string `mapstructure:"title" json:"title" yaml:"title"`
	Fa         string `mapstructure:"fa" json:"fa" yaml:"fa"`
	Url        string `mapstructure:"url" json:"url" yaml:"url"`
	ClassName  string `mapstructure:"className" json:"className" yaml:"className"`
}

type BlogParams struct {
	Author                 string       `mapstructure:"author" json:"author" yaml:"author"`
	Favicon                string       `mapstructure:"favicon" json:"favicon" yaml:"favicon"`
	Logo                   string       `mapstructure:"logo" json:"logo" yaml:"logo"`
	DarkLogo               string       `mapstructure:"darkLogo" json:"darkLogo" yaml:"darkLogo"`
	Description            string       `mapstructure:"description" json:"description" yaml:"description"`
	DateFormat             string       `mapstructure:"dateFormat" json:"dateFormat" yaml:"dateFormat"`
	BlogGroupBy            string       `mapstructure:"blogGroupBy" json:"blogGroupBy" yaml:"blogGroupBy"`
	LatestPostsCount       uint         `mapstructure:"latestPostsCount" json:"latestPostsCount" yaml:"latestPostsCount"`
	ShowAllPostsOnHomePage bool         `mapstructure:"showAllPostsOnHomePage" json:"showAllPostsOnHomePage" yaml:"showAllPostsOnHomePage"`
	MainSections           []string     `mapstructure:"mainSections" json:"mainSections" yaml:"mainSections"`
	Article                Article      `mapstructure:"article" json:"article" yaml:"article"`
	About                  About        `mapstructure:"about" json:"about" yaml:"about"`
	Footer                 Footer       `mapstructure:"footer" json:"footer" yaml:"footer"`
	HomeSlider             []HomeSlider `mapstructure:"homeSlider" json:"homeSlider" yaml:"homeSlider"`
	Jumps                  []Btns       `mapstructure:"jumps" json:"jumps" yaml:"jumps"`
	Widgets                Widgets      `mapstructure:"widgets" json:"widgets" yaml:"widgets"`
}

type BlogConfig struct {
	BaseURL                string     `mapstructure:"baseURL" json:"baseURL" yaml:"baseURL"`
	Title                  string     `mapstructure:"title" json:"title" yaml:"title"`
	Theme                  string     `mapstructure:"theme" json:"theme" yaml:"theme"`
	DefaultContentLanguage string     `mapstructure:"DefaultContentLanguage" json:"DefaultContentLanguage" yaml:"DefaultContentLanguage"`
	Paginate               uint       `mapstructure:"paginate" json:"paginate" yaml:"paginate"`
	Limit                  uint       `mapstructure:"limit" json:"limit" yaml:"limit"`
	Taxonomies             Taxonomies `mapstructure:"taxonomies" json:"taxonomies" yaml:"taxonomies"`
	Permalinks             Permalinks `mapstructure:"permalinks" json:"permalinks" yaml:"permalinks"`
	Params                 BlogParams `mapstructure:"params" json:"params" yaml:"params"`
	Menu                   MenuMain   `mapstructure:"menu" json:"menu" yaml:"menu"`
}
